Autofill for a User Device

ABSTRACT

An example method includes receiving, by a user device, authorization to engage in autofill for an application displayed on the user interface (UI) of the user device. The method further includes detecting an autofill trigger event and determining a subset of content excluding user-specific information. The method also includes transmitting a request containing the subset to a remote provider for candidate data for use in autofill. The method further includes receiving a response from the remote provider containing one or more candidate values for use in autofill. The method additionally includes filling the one or more text input fields displayed on the UI with the corresponding one or more candidate values.

CROSS-REFERENCE TO RELATED DISCLOSURES

This application is a continuation of U.S. patent application Ser. No.17/185,424, filed on Feb. 25, 2021, which is a continuation of U.S.patent application Ser. No. 16/524,872, now U.S. Pat. No. 10,969,943,filed on Jul. 29, 2019, which claims priority to U.S. patent applicationSer. No. 15/798,262, now U.S. Pat. No. 10,416,854, filed on Oct. 30,2017, which claims priority to U.S. Provisional Patent Application No.62/468,011 filed on Mar. 8, 2017, each of which are incorporated hereinby reference in their entirety.

BACKGROUND

Many modern computing devices, including mobile devices, mobile phones,personal computers, and tablets, provide user interfaces (UIs) forpermitting users to interact with the computing device. For example,application programs can use the UI to communicate with a user usingimages, text, and graphical elements such as windows, dialogs, pop-ups,images, buttons, scrollbars, and icons. The UI can also receive inputsfrom devices such as touch screens, a presence-sensitive display,computer mice, keyboards, and other devices to permit the user tocontrol the UI, and thus the application program.

In some cases, the UI can be used to interact with an operating systemto manage the computing device. For example, the operating system canhave a control panel or setting application that uses the UI to draw oneor more windows related to control settings for some aspect(s) of thecomputing device, such as audio controls, video outputs, computermemory, and human language(s) used by the operating system (e.g., chooseto receive information in English, French, Mandarin, Hindi, Russian,etc.). The control panel/settings application can receive subsequentinput related to the window(s) using the UI. The UI can provide theinputs to the operating system, via the control panel/settingsapplication, to manage the computing device.

However, manually entering data into a UI can be inconvenient, slowand/or cumbersome for users or may generate errors, especially on mobiledevices that may have a small UI.

SUMMARY

Example embodiments relate to a system that allows a user to engage theoperating system of a user device to facilitate autofill across multipleapplications with the help of a remote provider. More specifically, theoperating system may determine that it can engage in autofill for aparticular application. Then, based on the user's authorization for thisautofill, the operating system may recognize content displayed on theuser device that should be transmitted to a remote provider to aid infacilitating autofill and send a request to the remote providercontaining that content. After receiving the response from the remoteprovider containing data associated with the content in the request, theoperating system may then autofill the application with associated data.

In one aspect, a method is provided that includes receiving, by a userdevice via a user interface (UI), authorization to engage in autofillfor an application displayed on the UI of the user device. The methodfurther includes detecting an autofill trigger event while theapplication is displayed on the UI. The method also includes, responsiveto detecting the autofill trigger event, determining a subset of contentdisplayed on the UI, wherein the subset excludes user-specificinformation. The method additionally includes transmitting a request toa remote provider for candidate data for use in autofill for theapplication, wherein the request comprises the subset of contentdisplayed on the UI. The method further includes receiving a responsefrom the remote provider, wherein the response comprises one or morecandidate values corresponding to one or more text input fieldsdisplayed on the UI. The method also includes filling the one or moretext input fields displayed on the UI with the corresponding one or morecandidate values.

In another aspect, a user device is provided. The user device includes aUI and an operating system configured to receive authorization to engagein autofill for an application of the user device. The operating systemis further configured to detect an autofill trigger event. The operatingsystem is also configured to, responsive to detecting the autofilltrigger event, determine, a subset of content displayed on the UI,wherein the subset excludes user-specific information. The operatingsystem is additionally configured to transmit a request to a remoteprovider for candidate data for use in autofill for the application,wherein the request comprises the subset of content displayed on the UI.The operating system is further configured to receive a response fromthe remote provider, wherein the response comprises one or morecandidate values corresponding to one or more text input fieldsdisplayed on the UI. The operating system is also configured to fill theone or more candidate values into the corresponding one or more textinput fields displayed on the UI.

In another aspect, a non-transitory computer readable medium is providedhaving stored therein instructions executable by one or more processorsto cause an operating system of a user device to perform functions. Thefunctions include receiving, via a UI, authorization to engage inautofill for an application displayed on the UI of the user device.These functions also include detecting an autofill trigger event. Thesefunctions further include, responsive to detecting the autofill triggerevent, determining a subset of content displayed on the UI, wherein thesubset excludes user-specific information. These functions additionallyinclude transmitting a request to a remote provider for candidate datafor use in autofill for the application, wherein the request comprisesthe subset of content displayed on the UI. These functions also includereceiving a response from the remote provider, wherein the responsecomprises one or more candidate values corresponding to one or more textinput fields displayed on the UI. These functions further includefilling the one or more text input fields displayed on the UI with thecorresponding one or more candidate values.

In another aspect, a system is provided that includes a UI, at least oneprocessor, and a non-transitory computer readable medium having storedtherein instructions (that when executed by the at least one processor,cause the at least one processor to perform functions). The systemincludes means for receiving authorization to engage in autofill for anapplication of the user device. The system also includes means fordetecting an autofill trigger event. The system further includes meansfor, responsive to detecting the autofill trigger event, determining, asubset of content displayed on the UI, wherein the subset excludesuser-specific information. The system additionally includes means fortransmitting a request to a remote provider for candidate data for usein autofill for the application, wherein the request comprises thesubset of content displayed on the UI. The system also includes meansfor receiving a response from the remote provider, wherein the responsecomprises one or more candidate values corresponding to one or more textinput fields displayed on the UI. The system further includes means forfilling the one or more text input fields displayed on the UI with thecorresponding one or more candidate values.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 depicts a distributed computing architecture, in accordance withexample embodiments.

FIG. 2 is a flowchart of a method, in accordance with exampleembodiments.

FIG. 3A illustrates a prompt for a user to set up autofill, inaccordance with example embodiments.

FIG. 3B illustrates a displayed data set identifier for selection viathe UI of a user device, in accordance with example embodiments.

FIG. 3C illustrates a plurality of displayed data set identifiers forselection via the UI of a user device, in accordance with exampleembodiments.

FIG. 3D shows user interface functionality associated with a securedauthorization prompt eliciting biometric input data, in accordance withexample embodiments.

FIG. 3E shows user interface functionality associated with a securedauthorization prompt eliciting a card verification code, in accordancewith example embodiments.

FIG. 3F shows values filled into corresponding text input fieldsdisplayed on the UI of a user device, in accordance with exampleembodiments.

FIG. 4A shows user interface functionality associated with a user'smanual entry of data into the text input fields of an applicationdisplayed on the UI, in accordance with example embodiments.

FIG. 4B illustrates a confirmation message and data-save promptassociated with the user's manual entry of data shown in FIG. 4A, inaccordance with example embodiments

FIG. 5 is a functional block diagram of an example computing device, inaccordance with example embodiments.

DETAILED DESCRIPTION

Example methods and systems are described herein. Any example embodimentor feature described herein is not necessarily to be construed aspreferred or advantageous over other embodiments or features. Theexample embodiments described herein are not meant to be limiting. Itwill be readily understood that certain aspects of the disclosed systemsand methods can be arranged and combined in a wide variety of differentconfigurations, all of which are contemplated herein.

Furthermore, the particular arrangements shown in the Figures should notbe viewed as limiting. It should be understood that other embodimentsmight include more or less of each element shown in a given Figure.Further, some of the illustrated elements may be combined or omitted.Yet further, an example embodiment may include elements that are notillustrated in the Figures.

It will be readily understood that the aspects of the presentdisclosure, as generally described herein, and illustrated in theFigures, can be arranged, substituted, combined, separated, and designedin a wide variety of different configurations, all of which arecontemplated herein.

I. Overview

User devices, including mobile devices, mobile phones, personalcomputers, and tablets, are ubiquitous in modern communication networks.Many of these devices are capable of running one or more applicationswhile facilitating communication within such networks. Further, many ofthese devices also provide one or more UIs for permitting users tointeract with the user device.

For example, a user may use a UI to communicate information to be usedby an application on the user device through the use of images, text,and other graphical elements. The UI can also receive inputs fromnumerous devices connected to the user device, such as touch screens, apresence-sensitive display, computer mice, keyboards, and other devicesthat permit the user to control the UI, and thus the application.

In an optimal scenario, the user would be able to effectively andefficiently use the UI to communicate such information; however, one ormore factors may impose a limitation on the user's ability to do so.Thus, if operating under such a limitation, as the need to communicatemore and more information grows, the ability to communicate thisinformation effectively and efficiently may become restricted.

By way of example, for user devices with small screens, typing extensiveamounts of text into the UI to communicate information to be used by anapplication may be very difficult, especially if the text is alsodifficult for the user to remember. Accordingly, it may be advantageousfor the application to be able to remember this information as it wouldnot have to be recommunicated the next time the application was to beemployed by the user. It is plausible, however, that as the number ofapplications with which a user attempts to communicate grows, the burdenimposed by using the UI to communicate extensive amounts of text to eachof these applications (for the first time or otherwise) may burden theuser. And, this may be true even if individual applications rememberinformation entered by the user. As a result, users may become lessengaged in these applications (or abandon their use altogether) onceprompted to enter such information.

Disclosed herein are example embodiments relating to methods, systems,and devices that allow the user of the user device to effectively andefficiently communicate information to be used by such applications byengaging the operating system of the user device to serve as anintermediary to facilitate autofill across multiple applications withthe help of a remote provider. Specifically, the example embodimentsdisclosed herein allow a user to use autofill at the operating systemlevel of the user device by, in part, enabling autofill, allowing anyauthorized remote provider to provide data for autofill, retrievingautofill data, and saving autofill data for future use.

In an example embodiment, in accordance with the disclosure, theoperating system of the user device may receive authorization from theuser to engage in autofill for an application displayed on the UI of theuser device. For example, to enable autofill, the operating system maydetermine that a text input field is associated with a common autofilldescriptor (e.g., the text input field is associated with a term such as“password” or “username”), and then prompt the user to set up autofill.In a further aspect, if the user only has one remote provider designatedto help facilitate autofill, the user may be prompted to agree to usethat remote provider; but if there are multiple remote providersdesignated, the user may be prompted to choose one or more remoteproviders. In either scenario, however, because engaging the operatingsystem to perform autofill functions can involve sensitive and/orpersonal information specific to the user, the operating system mayapprise the user of the details underlying the authorization of theautofill. These details may include accepting a detailed agreementconcerning the operating system and/or a disclaimer associated with eachremote provider, to inform the user and confirm her consent beforeauthorizing the use of autofill with one or more of these remoteproviders.

In a further aspect, the operating system may also detect an event whichtriggers the operating system to examine the contents displayed on theUI. In example embodiments, this event may include: the initiation ofthe application; the selection of a text input field on the application;or a signal that a text input field has focus (e.g., a particular textfield has become engaged such that a keyboard is displayed on the UI),among other illustrative examples.

Then, once the operating system has detected such an event, and theoperating system has examined the content displayed on the UI, theoperating system may also determine what portion of this content doesnot contain sensitive user-specific information. In a further aspect,utilizing this portion of the content, the operating system may send arequest to a remote provider to help facilitate autofill for theapplication by providing candidate date for use in the application. Inthis embodiment, such a request may be beneficial for the operatingsystem and the user alike as it may allow the remote provider tosecurely and privately parse the content displayed on the UI todetermine what information may be useful for facilitating autofill forthe application (e.g., determining what text input fields on theapplication may be autofilled).

Once such a request has been sent to a remote provider, the operatingsystem may receive a response to the request containing a set ofcandidate values corresponding to the one or more text input fields ofthe application displayed on the UI. Additionally, in furtherembodiments, the operating system may display a secure authorizationprompt and receive user input data directed at the prompt beforeactually receiving such a response from the remote provider. This secureauthorization prompt may include a request for biometric inputinformation, among other illustrative examples.

Either way, once this response is received, the operating system mayfill the text input fields of the application displayed on the UI withone or more corresponding candidate values.

In another embodiment, the response may also contain a data setidentifier corresponding to the set of candidate values. If multiplesets of candidate values are contained in the response, assigning eachan identifier may be beneficial for the management of the informationcontained therein by the user and the operating system. Additionally, infurther embodiments, the operating system may display a secureauthorization prompt and receive user input data directed at the promptbefore receiving a response from the remote provider. This secureauthorization prompt may include a request for a card verification codeor a personal identification number, among other illustrative examples.

Once this response is received, the operating system may also displaythe data set identifier or identifiers contained in the response. Theoperating system may then receive input data from a user indicating theuser's selection of a data set identifier corresponding to values to beused in filling the text input fields of the application. In oneembodiment, the identifier corresponding to the set of candidate valuesreceived from the remote provider may be displayed for the user'sselection. In a further aspect, this displayed information may be a listof identifiers (in a drop-down menu or otherwise), wherein eachidentifier corresponds to a set of candidate values received from theremote provider. In a further aspect, once a data set identifier isselected, the operating system may then fill the set of candidate valuescorresponding to the selected data set identifier into the text inputfields of the application displayed on the UI.

In another embodiment, a fill indicator (in the form of a graphicreceived from the remote provider or otherwise) may be displayed in thetext input fields to be filled with these candidate values before theuser selects a data set. And, in yet another embodiment, the operatingsystem may receive a user's preselection of a data set identifier from alist of identifiers and display a fill indicator in the text inputfields of the application that could be filled with the candidate valuesassociated the preselected data set identifier.

In another embodiment, a remote provider may be provided with user datafor future autofill use after manually entering data in the text inputfields of an application displayed on the UI. More specifically, afterreceiving this data, the operating system may prompt the user to savethe input data for future use and send the data to the remote providerselected by the user to help facilitate autofill for the application. Inone embodiment, to save such input data for autofill, once the inputdata is entered and the keyboard is dismissed, the user may be promptedto save the input data for future autofill uses. In a further aspect,the saving of this data may be accomplished by the operating systemimmediately transmitting the input data to the remote provider, or bytemporarily holding the data until the user responds to the prompt, atwhich point, the operating system may send the data to the remoteprovider.

II. Distributed Computing Architecture

Reference will now be made in detail to various embodiments, examples ofwhich are illustrated in the accompanying drawings. In the followingdetailed description, numerous specific details are set forth in orderto provide a thorough understanding of the present disclosure and thedescribed embodiments. However, the present disclosure may be practicedwithout these specific details. In other instances, well-known methods,procedures, components, and circuits have not been described in detailso as not to unnecessarily obscure aspects of the embodiments.

FIG. 1 depicts a distributed computing architecture 100 with serverdevices 108, 110 configured to communicate, via network 106, with userdevices 104 a, 104 b, 104 c, 104 d, 104 e, and remote providers 112 and114, in accordance with example embodiments. Network 106 may correspondto a local area network (LAN), a wide area network (WAN), a corporateintranet, the public Internet, or any other type of network configuredto provide communication paths between networked computing devices.Network 106 may also correspond to a combination of one or more LANs,WANs, corporate intranets, and/or the public Internet.

Although FIG. 1 only shows a small collection of user devices,distributed application architectures may serve tens, hundreds, orthousands of user devices. Moreover, user devices 104 a, 104 b, 104 c,104 d, 104 e (or any additional programmable devices) may be any sort ofcomputing device capable of allowing a user to engage the operatingsystem of the computing device to facilitate autofill across multipleapplications with the help of a remote provider, such as an ordinarylaptop computer, desktop computer, wearable computing device, mobilecomputing device, head-mountable device (HMD), network terminal,wireless communication device (e.g., a smartphone or cell phone), and soon. In some embodiments, such as indicated with user devices 104 a, 104b, and 104 c, user devices can be directly connected to network 106. Inother embodiments, such as indicated with user devices 104 d and 104 e,user devices can be indirectly connected to network 106 via anassociated computing device, such as user device 104 c. In suchembodiments, user device 104 c can act as an associated computing deviceto pass electronic communications between user devices 104 d and 104 eand network 106. In still other embodiments not shown in FIG. 1, a userdevice can be both directly and indirectly connected to network 106.

Server devices 108, 110 may operate as part of a cloud-based serversystem that shares computer processing resources and data to computersand other devices on demand. In particular, server devices 108, 110 canbe configured to perform one or more services requested by user devices104 a-104 e. For example, server device 108 and/or 110 can providecontent to user devices 104 a-104 e. In a further aspect, server device108 and/or 110 may provide content to user devices 104 a-104 e directlyor by facilitating the transmission of content requested from a thirdparty. The content can include, but is not limited to, web pages,hypertext, scripts, binary data such as compiled software, images,audio, and/or video. The content can include compressed and/oruncompressed content. The content can be encrypted and/or unencrypted.

Remote providers 112, 114 may also operate as part of a cloud-basedserver system that shares computer processing resources and data tocomputers and other devices on demand. In particular, remote providers112, 114 may provide, receive, store, manage, and transmit content onthe network 106, in accordance with example embodiments. For example,remote provider 112 and/or 114 can receive a request for content to beused by user devices 104 a-104 e, and generate and transmit a responsecontaining the content to devices connected to the network.

Within examples, server device 108 and/or 110 may provide content thatfacilitates autofill across multiple applications on user devices 104a-104 e with the help of remote provider 112 and/or 114. Additionally,server device 108 and/or 110 can provide user devices 104 a-104 e withaccess to software for database, search, computation, graphical, audio,video, World Wide Web/Internet utilization, and/or other functions. Manyother examples of content are possible as well.

III. Method Flowchart and Example Embodiments

FIG. 2 illustrates a flowchart showing a method 200 that may beperformed to allow a user to engage the operating system of a userdevice to facilitate autofill across multiple applications with the helpof a remote provider. Method 200 may be carried out by one or morecomputing devices, such as the user devices 104 a-104 e and remoteprovider 112 and/or 114, and in some instances server 108 and/or 110 aswell, as illustrated and described with respect to FIG. 1. In additionalexamples, method 200 may be carried out by user devices 104 a-104 e andremote provider 112 and/or 114, and in some instances server 108 and/or110 as well, operating as part of a cloud-based system. Additionally,method 200 may be performed by one or more other types of computingdevices besides those specially illustrated in FIG. 1.

Additionally, although the steps of method 200 are described below asbeing completed by an operating system, other components, applications,and/or technologies related to the user device could perform the stepsof method 200.

Furthermore, it is noted that the functionality described in connectionwith the flowcharts described herein can be implemented asspecial-function and/or configured general-function hardware modules,portions of program code executed by a processor for achieving specificlogical functions, determinations, and/or steps described in connectionwith the flowchart shown in FIG. 2. Where used, program code can bestored on any type of computer-readable medium, for example, such as astorage device including a disk or hard drive.

In addition, each block of the flowchart shown in FIG. 2 may representcircuitry that is wired to perform the specific logical functions in theprocess. Unless specifically indicated, functions in the flowchart shownin FIG. 2 may be executed out of order from that shown or discussed,including substantially concurrent execution of separately describedfunctions, or even in reverse order in some examples, depending on thefunctionality involved, so long as the overall functionality of thedescribed method is maintained.

At block 210, method 200 may include receiving by an operating system ofa user device via a UI, authorization to engage in autofill for anapplication displayed on the UI of the user device. In particular, auser may be interacting with a computing device and decide to interactwith an application on that device. Once, or before, the user selectsthe application, however, he may be prompted to authorize the operatingsystem of the mobile to help autofill the application and/or otherapplications. More specifically, the operating system may recognize thatthe user is interacting with an application and that there is contentthat the operating system knows is relevant to autofilling theapplication. In accordance with this data, the operating system may thenprompt the user to authorize the operating system to engage in autofillfor the application, which may improve the user's interaction with,and/or the responsiveness of, user interface functionality.

In general, the operating system can recognize certain data that iscommonly associated with autofill. In an example, the operating systemmay recognize that a text input field associated with an applicationcontains or is associated with a common autofill descriptor (e.g.,“password” or “username”). In response, in this example, the operatingsystem may then prompt the user to set up autofill.

In some examples, before, after, or during the user's response to thisprompt, the operating system may also compile a list of one or moreremote providers to further aid in facilitating autofill. In one aspect,if there is only one remote provider designated to help facilitateautofill, the user may be prompted with an agreement to use that remoteprovider. In another aspect, however, if there are multiple remoteproviders designated to help facilitate autofill, then the user may beprompted to choose a remote provider and also prompted with an agreementto use that remote provider. In yet another aspect, the user may beallowed to choose more than one remote provider, but still may beprompted with an agreement to use each of the chosen remote providers.

In general, in either scenario, the operating system may reviewsensitive and/or personal information when engaging in autofill, and itmay be advantageous for the user to be informed of the details of thisautofill before consenting to its use. Specifically, because theoperating system may review content on the device containing sensitiveand/or personal information, the the operating system may inform theuser of the details underlying the authorization of the autofill beforeengaging in autofill.

In a further aspect, because the chosen remote provider may receive someinformation that the user may not typically share, the user may also beprompted to approve an agreement containing the terms for using each ofthe autofill providers chosen by the user. In some examples, in order toensure that the user fully understands the details for using theseautofill providers, before authorizing the use of autofill, the user maybe prompted with an agreement that may include a disclaimer for usingthe operating system and/or each of the autofill providers chosen by theuser for autofill.

In still other examples, before authorizing the use of autofill, theuser may be prompted with a verified transmission prompt authorizing theoperating system to send one or more values entered into one or moretext input fields displayed on the UI to a remote provider. For example,the user may have entered the one or more values into an applicationother than the one that served as the basis for the operating system'sprompt for the user to set up autofill (a “second application”). In afurther aspect, once authorized by the user to do so, the operatingsystem may then transmit the one or more values to the remote providerfor future use.

At block 220, method 200 further includes detecting, by the operatingsystem, an autofill trigger event while the application is displayed onthe UI. Autofill trigger events may provide information about thecurrent state of the user device, or an application thereon, includingthe state of user's interaction with the device. Autofill trigger eventsmay also be used to help the operating system know when to engage inauthorized autofill at the right points in time. In some examples,autofill triggers events may be direct or indirect user interactionswith the device. In general, once autofill is approved by the user,however, user interaction with the device may be monitored by theoperating system.

In one embodiment, example autofill trigger events may be indicated bydata associated with direct user interaction with the user device, suchas a user's initiation of an application, a user's selection of a textinput field of an application, or a request from the user to set upautofill for one or more applications, among other scenarios.

In other examples, the autofill trigger events may include dataassociated with indirect user interaction with the user device, such asa signal that an application has been initiated, or a signal that a textinput field of the application, or some other parameter of contentdisplayed on the UI of the user device, has focus, among otherscenarios. In a further aspect, the user's indirect interaction with theuser device may be reflected by a graphic or GUI, such as a keyboard,displayed on the UI.

At block 230, method 200 may further include responsive to detecting theautofill trigger event, determining, by the operating system, a subsetof content displayed on the UI, wherein the subset excludesuser-specific information.

In general, the content displayed on the UI refers to any informationassociated with an application that is ascertainable by the operatingsystem. In one example, this content may include a current viewhierarchy of the content displayed on the UI of the user device.Because, however, the content may also contain information that issensitive and/or private, the operating system determines only a subsetof the content which excludes the user-specific information.

In some examples, the user-specific information may include personallyidentifiable information, or any other information that can be used onits own or with other information to identify, contact, or locate asingle person, or to identify an individual in the context of otherinformation or data. In additional examples, the user-specificinformation may include information that the user has designated assensitive and/or private.

In still other examples, the user-specific information may includeinformation that has been designated as sensitive and/or private basedon one or more factors associated with the user. For example, theuser-specific information may include information that has beendesignated as sensitive and/or private based on the geographical regionin which the user, the user device, and/or the remote provider, islocated, among other possibilities. In other examples, the user-specificinformation may include information that has been designated assensitive and/or private based on an attribute of the user (e.g., theuser's age).

At block 240, method 200 may further include transmitting, by theoperating system, a request to a remote provider for candidate data foruse in autofill for the application, wherein the request comprises thesubset of content displayed on the UI. The request for candidate data issent to the remote provider selected to help facilitate the use ofautofill on the user device. Specifically, based on the subset ofdisplayed content excluding user-specific information, the operatingsystem may send a request containing information within or associatedwith this subset of content to the remote provider to alert the remoteprovider of, amongst other things, potentially fillable fields displayedon the UI. In any event, this request may be beneficial for theoperating system and the user alike as it may allow the remote providerto securely and privately parse the content displayed on the UI todetermine what information may be useful for facilitating autofill forthe application (e.g., determining what text input fields on theapplication may be autofilled).

In some examples, the request may include information associated withthe text input fields displayed on the UI. In one aspect, thisinformation may include one or more descriptors associated with the textinput fields. For example, these descriptors may include terms such as“name,” “username,” “email,” “password,” “address,” “city,” “state,”“zip code,” “country,” “account number,” and/or “card number,” amongother possibilities.

In other examples, the request may include information associated withthe current view hierarchy of the user device. In one aspect, thisinformation may include information associated with compiling ormaintaining the subset of content displayed on the UI (e.g., underlyingscript and/or code). In another aspect, this information may includeinformation associated with certain approximations of the subset ofcontent displayed on the UI (e.g, wireframe representations of thesubset of content). In yet another aspect, this information may includeinformation associated with the architecture of the subset of contentdisplayed on the UI (e.g., information associated with the relativelayout, linear layout, buttons, table layout, table rows, check boxes,and/or other elements).

At block 250, method 200 may further include receiving, by the operatingsystem, a response from the remote provider, wherein the responsecomprises one or more candidate values corresponding to one or more textinput fields displayed on the UI. In general, the response received fromthe remote provider may provide data that is helpful to the operatingsystem in facilitating autofill.

In one example, the response may contain data helpful to the operatingsystem in facilitating autofill in the first instance. For example, theresponse may contain a data set comprising a set of candidate valuescorresponding to the one or more text input fields of the applicationdisplayed on the UI.

In another embodiment, the response received from the remote providermay elicit further input data from the user before disclosing theinformation requested by the operating system. Specifically, in someembodiments, the response may contain a pre-communication signaleliciting the input of data associated with the user before sending thedata set requested by the operating system. In some examples, this inputdata may include data associated with the user's fingerprint or someother biometric data. In a further aspect, once this request for inputdata is received by the operating system, the operating system maygenerate and display a secure authorization prompt to apprise the userof this request. In yet a further aspect, the operating system may alsofacilitate the receipt of the input data and transmit a confirmationsignal (which may include the input data) to the remote provider. Forexample, if the requested data pertained to the user's fingerprint data,the operating system may display a secure authorization prompt elicitingthe user's fingerprint data, manage one or sensors directed at attainingthe user's fingerprint data, receive the user's fingerprint data via oneor more of those sensors, and then generate and transmit a confirmationsignal (which may include the user's fingerprint data) to the remoteprovider. Other illustrative examples are certainly possible.

At block 260, method 200 may further include filling, by the operatingsystem, the one or more text input fields displayed on the UI with thecorresponding one or more candidate values. In general, the operatingsystem can ensure that the one or more text input fields displayed onthe UI are filled, accurately and completely, with the corresponding oneor more candidate values.

In one aspect, the operating system may determine the location andsequence of the text input fields to be filled with the candidate valueson the UI and collate the candidate values accordingly before fillingthe text input fields with the corresponding one or more candidatevalues.

In another aspect, the operating system may determine whether the one ormore text input fields corresponding to the one or more candidate valuesto be used for autofill are actually displayed on the UI. For example,if the candidate values to be used for autofill correspond to text inputfields for “username,” “password,” and “address,” but the operatingsystem determines the only text input fields displayed on the UI are for“username” and “password,” then the operating system may take furtheraction. In one example, the operating system may simply disregard theextraneous candidate value. In another example, the operating system maysend a message apprising the remote provider that the extraneouscandidate value was sent in error.

In yet another aspect, the operating system may determine whether theone or more text input fields may actually be filled with thecorresponding one or more candidate values. For example, if one or moreof the candidate values to be used for autofill do not comply with aparameter of the text input fields to which they correspond, then theoperating system may take further action. In one example, a candidatevalue may contain noncompliant characters (e.g., too many characters,incorrect character type, etc.) in view of one or more requirements ofthe corresponding text input field. For example, if the text input fieldrequires a three digit numeric card verification code and thecorresponding candidate value is the word “Faulkner,” then the candidatevalue may contain noncompliant characters for at least two reasons(noncompliant length and noncompliant character type). In response, inone example, the operating system may simply disregard the noncompliantcandidate value. In another example, the operating system may send amessage apprising the remote provider that the noncompliant candidatevalue was sent in error. In yet another example, the operating systemmay use some portion of the noncompliant candidate value (e.g., thefirst three characters, “Fau”) to approximate one or more of the textinput field requirements. Other illustrative examples are certainlypossible.

IV. Further Example Embodiments

In other embodiments, the methods described herein may further includereceiving, by the operating system, a response from the remote provider,wherein the response may also contain a data set containing a data setidentifier.

In one example, the response may contain a data set comprising a set ofcandidate values corresponding to the one or more text input fields ofthe application displayed on the UI and a data set identifier associatedwith the set of candidate values. In another example, the response maycontain a plurality of data sets, each of which comprise a set ofcandidate values corresponding to the one or more text input fields ofthe application displayed on the UI and a data set identifier associatedwith that set of candidate values specifically.

Additionally, although receiving a data set identifier associated with aset of candidate values may benefit the operating system and the useralike (as the user does not have to review all of the candidate datawhen deciding to use that data for autofill), if multiple sets ofcandidate values are contained in the response, having an identifierassociated with each may be beneficial for the management of theinformation contained therein.

In a further aspect, the methods described herein may includedisplaying, by the operating system, the data set identifier forselection via the UI. In general, the data set identifier received fromthe remote provider may be associated with a set of candidate datacorresponding to potentially fillable fields displayed on the UI.

In one example, the response may contain a data set identifier helpfulto the user for identifying associated candidate data to be used inautofill. For example, if the response contains a data set comprising aset of candidate values corresponding to the one or more text inputfields of an application displayed on the UI and a data set identifierassociated with the set of candidate values, then the data setidentifier may be displayed on the UI to help the user understand theassociated candidate values to be used for autofill. In another example,if the response contains a plurality of data sets, each of whichcomprise a set of candidate values corresponding to the one or more textinput fields of the application displayed on the UI and a data setidentifier associated with each set of candidate values specifically,then the data set identifiers may be displayed on the UI to help theuser understand the candidate values associated with each data setidentifier.

In a further aspect, displaying a data set identifier or identifiersassociated with a set or sets of candidate values may benefit theoperating system and the user alike (as the user may select a displayeddata set identifier to use the candidate values associated with thatidentifier instead of reviewing all of the candidate data when decidingwhich candidate values the operating system should use for autofill).

In another example, if there are multiple sets of candidate values andassociated identifiers, these identifiers may be displayed as a list ofidentifiers (in a drop-down menu or otherwise), each corresponding to aset of candidate values, for the user's selection.

In yet another example, a fill indicator may also be displayed in thetext input fields that could be filled with these candidate values.Specifically, the fill indicator may allow the user to preview what textinput fields will be autofilled with a particular set of candidatevalues before engaging in autofill. Further, the fill indicator may bedisplayed in the form of a graphic generated by the operating system(e.g., a pencil graphic) or a specific graphic received from the remoteprovider or otherwise (e.g., a brand or graphic associated with theremote provider). In one example, the operating system may receive apreselection of the displayed identifier or an identifier from thedisplayed list of identifiers and display a fill indicator in the textinput fields of the application that could be filled with the candidatevalues associated the preselected identifier. In another example, theoperating system may display a fill indicator in the text input fieldsof the application that could be filled with the candidate valuesassociated with any of the identifiers from the displayed list ofidentifiers. Other illustrative examples are certainly possible.

Additionally, the methods described herein may further includereceiving, by the operating system, input data indicating a selection ofthe data set identifier. In general, the receipt of the input dataindicating the selection of a data set identifier may indicate to theoperating system that the user is selecting the data set identifier andthe candidate values associated with that identifier for use inautofill.

In one example, receiving input data indicating the selection of adisplayed data set identifier may allow the operating system to use thecandidate values associated with the selected identifier in autofill,with no further action by the user.

In another example, the displayed data set identifier may be reflectiveof a pre-communication signal received from the selected remoteprovider, which contains a data set identifier and, among other things,a secure authorization prompt, which may elicit further input data fromthe user (e.g., card verification codes, personal identificationnumbers, etc.) before sending the requested data.

In a further aspect, once the pre-communication signal is received, theoperating system may display the secure authorization prompt elicitingthe input data. And, in yet a further aspect, the operating system mayalso facilitate the receipt of the input data and transmit aconfirmation signal (which may include the input data) to the remoteprovider. In one embodiment, the operating system may also prompt theuser to save this input data for future use.

In another example, however, the displayed data set identifier may bereflective of a first pre-communication signal received from theselected remote provider, which contains only a data set identifier. Ina further aspect, once received, the operating system may transmit theselection of this data set identifier to the remote provider, which maysend a second pre-communication signal in response. This secondpre-communication signal may contain, among other things, a secureauthorization prompt, which may elicit further input data from the user(e.g., card verification codes, personal identification numbers, etc.)before sending the requested data.

In a further aspect, once this second pre-communication signal isreceived, the operating system may display the secure authorizationprompt eliciting the input data. And, in yet a further aspect, theoperating system may also facilitate the receipt of the input data andtransmit a confirmation signal (which may include the input data) to theremote provider. In one embodiment, the operating system may also promptthe user to save this input data for future use.

V. Additional Explanatory Figures and Example Embodiments

FIG. 3A shows a prompt to set up autofill, in accordance with exampleembodiments. In particular, a user device 302 such as a cellular phonemay display a portion of application 304 on the user device. Theapplication 304 may also include text input fields containing orassociated with a common autofill descriptor 306 (e.g., “password”). Inthis example, once the operating system of the user device 302recognizes a common autofill descriptor 306, the operating systemdisplays a prompt to set up autofill 308. In further examples, asdiscussed above, after selecting to setup autofill, the user may beprompted to select one or more remote providers to help facilitateautofill and may also be prompted to review and approve one or moreagreements associated with the selected provider.

FIG. 3B shows a displayed data set identifier for selection via the UIof the user device, in accordance with example embodiments. Inparticular, a user device 302 such as a cellular phone may display aportion of application 304 on the user device. In this example, asdescribed above, in response to a text input field of the applicationhaving focus 310 (here, the “email” text input field has a vertical lineindicating text can be typed into the field via the displayed keyboard),the operating system recognizes this focus, determines a subset of thecontent displayed on the UI that excludes user-specific information,transmits that subset of content to the remote provider, and once theresponse from the remote provided is received, displays, for the user'sselection, the data set identifier 312 associated with the candidatevalues to be used in autofill. In further examples, the operating systemmay also display a fill indicator 314 (here, a pencil graphic) in thetext input fields to be filled with the candidate values, which may alsobe influenced by a preselection of the displayed identifier.

FIG. 3C shows a plurality of displayed data set identifiers forselection via the UI of the user device, in accordance with exampleembodiments. Unlike the example embodiment in FIG. 3B, once the responsefrom the remote provided is received, the operating system of the userdevice 302 displays, for the user's selection, a list of data setidentifiers 316 associated with each of the candidate values topotentially be used in autofill. In further examples, the operatingsystem may also display a fill indicator 314 (here, a pencil graphic) inthe text input fields to be filled with the candidate values in avariety of ways. For example, in one aspect, the operating system maydisplay a fill indicator 314 in the text input fields based on receivinga preselection of an identifier from the displayed list of identifiers.In another example, however, the operating system may display a fillindicator 314 in the text input fields that could be filled with thecandidate values associated with any of the identifiers from thedisplayed list of identifiers. Other illustrative examples are certainlypossible.

FIG. 3D shows user interface functionality associated with a securedauthorization prompt eliciting biometric input data, in accordance withexample embodiments. Unlike the previous figures, in this example theresponse received from the remote provider contains a pre-communicationsignal eliciting the input of biometric data before sending the data setrequested by the user. In a further aspect, the operating system maygenerate and display a secure authorization prompt 318 (here, a secureauthorization prompt eliciting the user's fingerprint data) to apprisethe user of this request. In yet a further aspect, the operating systemmay also facilitate the receipt of the input data and transmit aconfirmation signal (which may include the input data) to the remoteprovider.

FIG. 3E shows user interface functionality associated with a securedauthorization prompt eliciting a card verification code, in accordancewith example embodiments. In particular, a user device 302 such as acellular phone may display a portion of application 304 on the userdevice. In this example, as described above, the response received fromthe remote provided contains a first pre-communication signal containingone or more data set identifiers associated with candidate values to beused in autofill. Then, in response to receiving input data indicatingthe selection of a displayed data set identifier 320 associated with thecandidate values to be used in autofill (here, credit card informationcorresponding to the displayed data set identifier), the operatingsystem may transmit the selection of the data set identifier to theremote provider and receive a second pre-communication signal comprisinga secure authorization prompt. In this example, the operating system maydisplay a secure authorization prompt 324 (here, a request for the cardverification code associated with the selected data set identifier). Inyet a further aspect, the operating system may also facilitate thereceipt of the input data, transmit a confirmation signal (which mayinclude the input data) to the remote provider, and/or allow the user toelect to save 326 this input data and use it for future use.

FIG. 3F shows one or more values filled into the corresponding one ormore text input fields displayed on the UI of the user device, inaccordance with example embodiments. In particular, a user device 302such as a cellular phone may display a portion of application 304 on theuser device. In this example, in response to receiving input dataindicating the user's selection of a data set identifier associated withthe candidate values to be used in autofill, the operating system inputs328 the one or more candidate values into the corresponding one or moretext input fields displayed on the UI. In further examples, theoperating system may also display a confirmation message 330 to apprisethe user that the text input fields of the application displayed on theUI have been autofilled. In a further example the operating system mayalso display an undo prompt 332 to apprise the user that the text inputfields of the application may be cleared of the data filled by theoperating system during the autofill process.

FIG. 4A shows user interface functionality associated with a user'smanual entry of data into the text input fields of an applicationdisplayed on the UI, in accordance with example embodiments. Morespecifically, a user device 402 such as a cellular phone may display aportion of application 404 on the user device. In this example, in spiteof authorizing the operating system of the mobile to engage in autofill,the user may manually enter input data into a first text input field 406(here, the “email” text input field) and a second text input field 408(here, the “password” text input field). In a further aspect, the usermay manually enter this input data in spite of one or more displayeddata set identifiers 410 associated with the candidate values to be usedin autofill and/or a displayed fill indicator 412 (here, a pencilgraphic) in the text input field to be filled with the candidate values.In another example embodiment, in response to a user manually enteringinput data into a text input field, the operating system may filter thedisplayed data set identifiers and/or the associated candidate values tobe used in autofill to limit the displayed data set identifiers and/orthe associated candidate values to be used in autofill to those thatmatch or correspond to the input data being manually entered by theuser.

FIG. 4B illustrates a confirmation message and data-save promptassociated with the user's manual input of data into the text inputfields of the application displayed on the UI as shown in FIG. 4A, inaccordance with example embodiments. Specifically, once the user hasmanually entered input data associated with the text input fieldsdisplayed on the UI, the operating system may generate and display aconfirmation message 414 to apprise the user that the text input fieldsof the application displayed on the UI have been filled. In a furtherexample, the operating system may also display a prompt 416 allowing theuser to save the input data entered into the text input fields of theapplication, which may also include transmitting the input data to theselected remote provider for future autofill use. In a further aspect,the operating system may save the input data for future autofill uses bytemporarily holding the data until the user responds to the prompt, atwhich point, the operating system may send the data to the remoteprovider.

VI. Computing Device

In reference now to FIG. 5, FIG. 5 is a functional block diagram ofcomputing device 500, in accordance with example embodiments. Inparticular, computing device 500 shown in FIG. 5 can be configured toperform at least one function of server device 108 and/or 110, and/orremote provider 112 and/or 114, any of user device 104 a-104 e, method200, user device 302, and/or user device 402 as previously described.

Computing device 500 may include a user interface module 501, anetwork-communication interface module 502, one or more processors 503,data storage 504, and one or more sensors 520, all of which may belinked together via a system bus, network, or other connection mechanism505.

User interface module 501 can be operable to send data to and/or receivedata from external user input/output devices. For example, userinterface module 501 can be configured to send and/or receive data toand/or from user input devices such as a keyboard, a keypad, a touchscreen, a presence-sensitive display, a computer mouse, a track ball, ajoystick, a camera, a voice recognition module, and/or other similardevices. User interface module 501 can also be configured to provideoutput to user display devices, such as one or more cathode ray tubes(CRT), liquid crystal displays, light emitting diodes (LEDs), displaysusing digital light processing (DLP) technology, printers, light bulbs,and/or other similar devices, either now known or later developed. Userinterface module 501 can also be configured to generate audibleoutput(s), such as a speaker, speaker jack, audio output port, audiooutput device, earphones, and/or other similar devices. User interfacemodule 501 can further be configured with one or more haptic devicesthat can generate haptic output(s), such as vibrations and/or otheroutputs detectable by touch and/or physical contact with computingdevice 500. In some embodiments, user interface module 501 can be usedto provide a GUI for utilizing computing device 500.

Network-communications interface module 502 can include one or morewireless interfaces 507 and/or one or more wireline interfaces 508 thatare configurable to communicate via a network. Wireless interfaces 507can include one or more wireless transmitters, receivers, and/ortransceivers, such as a Bluetooth transceiver, a Zigbee transceiver, aWi-Fi transceiver, a WiMAX transceiver, and/or other similar type ofwireless transceiver configurable to communicate via a wireless network.Wireline interfaces 508 can include one or more wireline transmitters,receivers, and/or transceivers, such as an Ethernet transceiver, aUniversal Serial Bus (USB) transceiver, or similar transceiverconfigurable to communicate via a twisted pair wire, a coaxial cable, afiber-optic link, or a similar physical connection to a wirelinenetwork.

In some embodiments, network communications interface module 502 can beconfigured to provide reliable, secured, and/or authenticatedcommunications. For each communication, information for ensuringreliable communications (i.e., guaranteed message delivery) can beprovided, perhaps as part of a message header and/or footer (e.g.,packet/message sequencing information, encapsulation header(s) and/orfooter(s), size/time information, and transmission verificationinformation such as CRC and/or parity check values). Communications canbe made secure (e.g., be encoded or encrypted) and/or decrypted/decodedusing one or more cryptographic protocols and/or algorithms, such as,but not limited to, DES, AES, RSA, Diffie-Hellman, and/or DSA. Othercryptographic protocols and/or algorithms can be used as well or inaddition to those listed herein to secure (and then decrypt/decode)communications.

One or more processors 503 can include one or more general purposeprocessors, and/or one or more special purpose processors (e.g., digitalsignal processors, graphics processing units, application specificintegrated circuits, etc.). One or more processors 503 can be configuredto execute computer-readable program instructions 506 that are containedin data storage 504 and/or other instructions as described herein.

Data storage 504 can include one or more computer-readable storage mediathat can be read and/or accessed by at least one of one or moreprocessors 503. The one or more computer-readable storage media caninclude volatile and/or non-volatile storage components, such asoptical, magnetic, organic or other memory or disc storage, which can beintegrated in whole or in part with at least one of one or moreprocessors 503. In some embodiments, data storage 504 can be implementedusing a single physical device (e.g., one optical, magnetic, organic orother memory or disc storage unit), while in other embodiments, datastorage 504 can be implemented using two or more physical devices.

Data storage 504 can include computer-readable program instructions 506and perhaps additional data. In some embodiments, data storage 504 canadditionally include storage required to perform at least part of theherein-described methods, scenarios, and techniques and/or at least partof the functionality of the herein-described devices and networks.

In some embodiments, computing device 500 can include one or moresensors 520. Sensor(s) 520 can be configured to measure conditions in anenvironment of computing device 500 and provide data about thatenvironment. For example, sensor(s) 520 can include one or more of: (i)an identification sensor to identify other objects and/or devices, suchas, but not limited to, an RFID reader, proximity sensor,one-dimensional barcode reader, two-dimensional barcode (e.g., QuickResponse (QR) code) reader, and a laser tracker, where theidentification sensor(s) can be configured to read identifiers, such asRFID tags, barcodes, QR codes, and/or other devices and/or objectconfigured to be read and provide at least identifying information; (ii)sensors to measure locations and/or movements of computing device 500,such as, but not limited to, a tilt sensor, a gyroscope, anaccelerometer, a Doppler sensor, a Global Positioning System (GPS)device, a sonar sensor, a radar device, a laser-displacement sensor, anda compass; (iii) an environmental sensor to obtain data indicative of anenvironment of computing device 500, such as, but not limited to, aninfrared sensor, an optical sensor, a light sensor, a camera, abiosensor, a biometric sensor, a capacitive sensor, a touch sensor, atemperature sensor, a wireless sensor, a radio sensor, a movementsensor, a microphone, a sound sensor, an ultrasound sensor, and/or asmoke sensor; and (iv) a force sensor to measure one or more forces(e.g., inertial forces and/or G-forces) acting about computing device500, such as, but not limited to one or more sensors that measure:forces in one or more dimensions, torque, ground force, friction, and/ora zero moment point (ZMP) sensor that identifies ZMPs and/or locationsof the ZMPs. Many other examples of sensor(s) 520 are possible as well.

The present disclosure is not to be limited in terms of the particularembodiments described in this application, which are intended asillustrations of various aspects. Many modifications and variations canbe made without departing from its spirit and scope, as will be apparentto those skilled in the art. Functionally equivalent methods andapparatuses within the scope of the disclosure, in addition to thoseenumerated herein, will be apparent to those skilled in the art from theforegoing descriptions. Such modifications and variations are intendedto fall within the scope of the appended claims.

The above detailed description describes various features and functionsof the disclosed systems, devices, and methods with reference to theaccompanying figures. In the figures, similar symbols typically identifysimilar components, unless context dictates otherwise. The illustrativeembodiments described in the detailed description, figures, and claimsare not meant to be limiting. Other embodiments can be utilized, andother changes can be made, without departing from the spirit or scope ofthe subject matter presented herein. It will be readily understood thatthe aspects of the present disclosure, as generally described herein,and illustrated in the figures, can be arranged, substituted, combined,separated, and designed in a wide variety of different configurations,all of which are explicitly contemplated herein.

With respect to any or all of the ladder diagrams, scenarios, and flowcharts in the figures and as discussed herein, each block and/orcommunication may represent a processing of information and/or atransmission of information in accordance with example embodiments.Alternative embodiments are included within the scope of these exampleembodiments. In these alternative embodiments, for example, functionsdescribed as blocks, transmissions, communications, requests, responses,and/or messages may be executed out of order from that shown ordiscussed, including substantially concurrent or in reverse order,depending on the functionality involved. Further, more or fewer blocksand/or functions may be used with any of the ladder diagrams, scenarios,and flow charts discussed herein, and these ladder diagrams, scenarios,and flow charts may be combined with one another, in part or in whole.

A block that represents a processing of information may correspond tocircuitry that can be configured to perform the specific logicalfunctions of a herein-described method or technique. Alternatively oradditionally, a block that represents a processing of information maycorrespond to a module, a segment, or a portion of program code(including related data). The program code may include one or moreinstructions executable by a processor for implementing specific logicalfunctions or actions in the method or technique. The program code and/orrelated data may be stored on any type of computer readable medium suchas a storage device including a disk or hard drive or other storagemedium.

The computer readable medium may also include non-transitory computerreadable media such as non-transitory computer-readable media thatstores data for short periods of time like register memory, processorcache, and random access memory (RAM). The computer readable media mayalso include non-transitory computer readable media that stores programcode and/or data for longer periods of time, such as secondary orpersistent long term storage, like read only memory (ROM), optical ormagnetic disks, compact-disc read only memory (CD-ROM), for example. Thecomputer readable media may also be any other volatile or non-volatilestorage systems. A computer readable medium may be considered a computerreadable storage medium, for example, or a tangible storage device.

Moreover, a block that represents one or more information transmissionsmay correspond to information transmissions between software and/orhardware modules in the same physical device. However, other informationtransmissions may be between software modules and/or hardware modules indifferent physical devices.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are provided forexplanatory purposes and are not intended to be limiting, with the truescope being indicated by the following claims.

What is claimed is:
 1. A method comprising: receiving, by a remote device from a user device, a request for candidate data for use in autofill for an application displayed on a user interface (UI) of the user device, wherein the request comprises a subset of content displayed on the UI; determining, by the remote device based on the subset of content displayed on the UI, one or more fillable fields of one or more text input fields displayed on the UI of the user device; determining, by the remote device and based on the subset of content displayed on the UI and the one or more fillable fields, a data set, wherein the data set comprises one or more candidate values corresponding to the one or more fillable fields of the one or more text input fields displayed on the UI; transmitting, from the remote device, a pre-communication signal comprising a secure authorization prompt to elicit user authentication data; receiving, by the remote device, a confirmation signal including the user authentication data; and based on the received confirmation signal, transmitting, by the remote device to the user device, a response to the request for candidate data, wherein the response comprises the determined data set comprising the one or more candidate values for entry into the one or more fillable fields of the one or more text input fields displayed on the UI.
 2. The method of claim 1, wherein the data set further comprises a data set identifier, wherein the data set identifier is displayed on the UI, wherein selection of the data set identifier causes the one or more text input fields displayed on the UI to be filled with the corresponding one or more candidate values.
 3. The method of claim 2, further comprising transmitting a fill indicator associated with the remote device, wherein the fill indicator is displayed on the UI of the user device.
 4. The method of claim 3, wherein the fill indicator is associated with a graphic corresponding to the remote device.
 5. The method of claim 2, wherein the response from the remote device comprises a plurality of data sets, wherein each data set comprises a respective data set identifier and one or more candidate values corresponding to one or more text input fields displayed on the UI, and wherein the plurality of data set identifiers are displayed via the UI.
 6. The method of claim 5, wherein a fill indicator is displayed in the text input fields fillable with one or more candidate values corresponding to a preselection of a data set identifier from the plurality of data set identifiers.
 7. The method of claim 5, wherein a fill indicator is displayed on the UI in the text input fields fillable with the one or more candidate values corresponding to a preselected data set identifier.
 8. The method of claim 5, wherein a respective secure authorization prompt is generated based on a selection of the data set identifier, wherein the respective secure authorization prompt elicits a respective secure input communication, wherein the one or more text input fields are filled with the one or more candidate values corresponding to the selected data set identifier.
 9. The method of claim 5, wherein the plurality of data set identifiers are displayed in a drop-down menu separated from the text input fields.
 10. The method of claim 1, wherein the remote device is one of a plurality of remote devices, and wherein the remote device is authorized via the UI to receive autofill requests for the application.
 11. The method of claim 1, wherein the secure authorization prompt comprises a request for a biometric input.
 12. The method of claim 1, wherein the secure authorization prompt comprises a request for a card verification code.
 13. The method of claim 1, wherein the secure authorization prompt comprises a request for a personal identification number.
 14. The method of claim 1, further comprising: transmitting from the remote device a first pre-communication signal comprising a data set identifier; and receiving, by the remote device, input data indicating a selection of the data set identifier, wherein the pre-communication signal is a second pre-communication signal.
 15. The method of claim 1, further comprising: receiving, by the remote device, one or more values corresponding to one or more input text fields displayed on the UI corresponding to a second application, wherein a verified transmission prompt is displayed on the UI to receive authorization to send the one or more values to the remote device.
 16. The method of claim 1, wherein receiving the request for candidate data is based on the user device detecting an initiation of the application.
 17. The method of claim 1, wherein receiving the request for candidate data is based on the user device detecting a selection of a text input field of the application.
 18. The method of claim 1, wherein receiving the request for candidate data is based on a signal at the user device that a text input field has focus such that a keyboard is displayed on the UI.
 19. A remote device comprising: one or more processors: and data storage storing instructions that, upon execution by the one or more processors, cause the remote device to perform functions comprising: receiving, from a user device, a request for candidate data for use in autofill for an application displayed on a user interface (UI) of the user device, wherein the request comprises a subset of content displayed on the UI; determining, based on the subset of content displayed on the UI, one or more fillable fields of one or more text input fields displayed on the UI of the user device; determining, based on the subset of content displayed on the UI and the one or more fillable fields, a data set, wherein the data set comprises one or more candidate values corresponding to the one or more fillable fields of the one or more text input fields displayed on the UI; transmitting a pre-communication signal comprising a secure authorization prompt to elicit user authentication data; receiving a confirmation signal including the user authentication data; and based on the received confirmation signal, transmitting, to the user device, a response to the request for candidate data, wherein the response comprises the determined data set comprising the one or more candidate values for entry into the one or more fillable fields of the one or more text input fields displayed on the UI.
 20. A non-transitory computer readable medium having stored therein instructions executable by one or more processors to cause an operating system of a remote device to perform functions comprising: receiving, from a user device, a request for candidate data for use in autofill for an application displayed on a user interface (UI) of the user device, wherein the request comprises a subset of content displayed on the UI; determining, based on the subset of content displayed on the UI, one or more fillable fields of one or more text input fields displayed on the UI of the user device; determining, based on the subset of content displayed on the UI and the one or more fillable fields, a data set, wherein the data set comprises one or more candidate values corresponding to the one or more fillable fields of the one or more text input fields displayed on the UI; transmitting a pre-communication signal comprising a secure authorization prompt to elicit user authentication data; receiving a confirmation signal including the user authentication data; and based on the received confirmation signal, transmitting, to the user device, a response to the request for candidate data, wherein the response comprises the determined data set comprising the one or more candidate values for entry into the one or more fillable fields of the one or more text input fields displayed on the UI. 